A computing system may comprise a means for detecting malfunction of the computing system autonomously. Auto diagnosis tools can be particularly beneficial for safety applications. Detection of malfunction generally requires some amount of redundancy to the system's resources. This redundancy usually has a price, as it may involve additional hardware or reduce the performance of the system. As trade-offs must be made between the detectability of potential faults and the additional system cost, a broad spectrum of safety features, capable of detecting a system failure, have been devised in the past.
Detection of malfunction is in particular important for safety critical apparatuses, which may, for example, be any technical apparatuses, wherein an improper usage, unexpected failure or malfunction may result in major damages or dangerous situations, for example, for the operators or other people. A safety critical apparatus, may, for example, be (a part of) a power plant, a chemical or other industrial plant, a railway control centre or any vehicle that carries at least an operator or moves fast enough to cause damages to the ambient environment in case of a malfunction.
One technique, known as lock step, is an example of a very costly solution. In the lock step technique, the computing system, or at least parts thereof, are duplicated and operated in parallel. Faults may be detected by comparing the behaviour of both systems.